/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Banco.DAO;


import Banco.Conexao.conexao3G;
import enviosms.Destino;
import enviosms.Mensagem;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;

/**Classe destinada a operações relacionadas com o objeto Destino

 * @author Yoka Sistemas

 * @version full

 * @since Release 01 da aplicação

 */
public class DestinoDAO {

    private conexao3G conecta3g;

    public DestinoDAO(){

        conecta3g = conexao3G.getConexao3G();

    }

     /**Método para inserçã do objeto destino no banco de dados

     * @author Yoka Sistemas

     * @param  destino Destino - 

     * @return int - Id do Destino inserido

     */
    public boolean inserirDestino(Destino destino) throws SQLException{
        boolean retorno = false;

        int idDestino = 0;
      
        //conecta3g.conecta();
        System.out.println("Id mensagem Destino: " + destino.getMsg().getIdMensagem());
        destino.setMensagem_idMensagemFK(destino.getMsg().getIdMensagem());

        
        String SQL_INSERT_Destino = "INSERT INTO destino(numero, mensagem_idmensagem, destino, enviada)" +
        " VALUES ('"+ destino.getCelular()
        +"', "+ destino.getMensagem_idMensagemFK()
        +", '"+ destino.getAluno_destino()
        +"', "+ 0 +")";

        System.out.println(SQL_INSERT_Destino);

        conecta3g.execute(SQL_INSERT_Destino);
        System.out.println("passou inserir destino");
        retorno = true;

        String SQL_getIDDestino = "SELECT iddestino FROM destino";
        System.out.println(SQL_getIDDestino);

       ResultSet rs3= conecta3g.executeSql(SQL_getIDDestino);

        //pega o id destino do destino que acabou de ser salva e seta no atributo idDestino
        if(rs3.last()){

            idDestino = rs3.getInt("iddestino");
            System.out.println(idDestino);
            destino.setId_Destino(idDestino);
        }

        //conecta3g.desconecta();
     return retorno;
    }

     /**Método para atualização do campo 'en'

     * @author Yoka Sistemas

     * @param  destino Destino - 

     * @return int - Id do Destino inserido na tabela Destino no banco de dados

     */
    public boolean atulizaStatusDestino(int idDestino){
        boolean retorno = false;

        //conecta3g.conecta();
        String SQL_UPDATE_STATUS = "UPDATE destino SET enviada = "+1+" WHERE iddestino = "+idDestino;
        System.out.println(SQL_UPDATE_STATUS);
        conecta3g.execute(SQL_UPDATE_STATUS);
        retorno = true;
        //conecta3g.desconecta();
        return retorno;
    }


     static private Date converteData(String data) {

        Date novaData = null;
        try {
            data =  data.substring(6) + "-" +
            data.substring(3, 5) + "-" +
            data.substring(0, 2);
            novaData = Date.valueOf(data);

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return novaData;
    }

    public static void main(String args[]) throws SQLException {

        int iddestino;
        DestinoDAO teste = new DestinoDAO();

        Mensagem mesnsagem = new Mensagem();

        mesnsagem.setCorpoMsg("testando mudancasss");
        //mesnsagem.setData(converteData("25/12/2009"));
        mesnsagem.setRemetente("Isabela");
        mesnsagem.setTurma_cursoFK("Engenharia de Computação");
        mesnsagem.setTurma_disciplinaFK("TEC408");
        mesnsagem.setTurma_periodoFK("2009.1");
        mesnsagem.setTurma_turmaFK("01");

        Destino destinoTeste = new Destino();

        

        MensagensDAO t = new MensagensDAO();
        t.insertMensagem(mesnsagem);

        destinoTeste.setCelular("0557781147994");
        destinoTeste.setMsg(mesnsagem);
        destinoTeste.setAluno_destino("Jaizo");
        destinoTeste.setStatus(false);
        
        teste.inserirDestino(destinoTeste);

        teste.atulizaStatusDestino(destinoTeste.getId_Destino());


    }

}
